Your program should always be prepared to catch the bad_alloc exception before trying to access the new object (unless you use a new-handler).
A request for allocation of 0 bytes returns a non-null pointer. Repeated requests for zero-size allocations return distinct, non-null pointers.